昨天我們搭建好了牧場的基礎設施,今天要為我們的數位牧場申請一個真實的門牌地址!在開始之前,先分享一個小插曲:前面在設定的時候,我嘗試將 Bastion 的 IP 加入 MacBook 的 Nameserver,結果出門後,發現網路都連不上了 QQ!後來發現 ping 得通 8.8.8.8,但是連不上 google.com,才想到應該是 DNS 設定跑掉了。
所以今天我們要用正確的方式來設定外部域名服務!
在實驗環境中,我們面對的挑戰:
IP 位址的限制:
DuckDNS 的優勢:
前往 DuckDNS 官網進行註冊:
# DuckDNS 官網
https://www.duckdns.org/
註冊流程:
Sign in with GitHub
完成 reCAPTCHA 驗證
註冊域名
ithome-rancher
ithome-rancher.duckdns.org
記住 Token
12345678-1234-1234-1234-123456789012
在 DuckDNS 管理頁面:
# 取得您的公網 IP
curl ifconfig.me
# 在 DuckDNS 頁面輸入這個 IP
# 或使用 API 自動更新
設定環境變數:
# 在 bastion-infra-server 上設定
export DUCKDNS_DOMAIN="ithome-rancher"
export DUCKDNS_TOKEN="your-token-here"
export PUBLIC_IP=$(curl -s ifconfig.me)
echo "Domain: ${DUCKDNS_DOMAIN}.duckdns.org"
echo "Token: ${DUCKDNS_TOKEN}"
echo "Public IP: ${PUBLIC_IP}"
# 基本域名解析測試
nslookup ithome-rancher.duckdns.org
# 預期輸出類似:
# Server: 8.8.8.8
# Address: 8.8.8.8#53
#
# Name: ithome-rancher.duckdns.org
# Address: YOUR_PUBLIC_IP
# 詳細 DNS 查詢
dig ithome-rancher.duckdns.org
# 只顯示 IP 地址
dig +short ithome-rancher.duckdns.org
# 從不同 DNS 伺服器查詢
dig @8.8.8.8 ithome-rancher.duckdns.org
dig @1.1.1.1 ithome-rancher.duckdns.org
# 檢查 DNS 記錄類型
dig ithome-rancher.duckdns.org A
dig ithome-rancher.duckdns.org ANY
DuckDNS 支援萬用字元解析,但需要先設定主域名的 IP:
# 注意:以下測試需要先完成 IP 設定才會有結果
# 測試子域名 (都會指向同一個 IP)
nslookup rancher.ithome-rancher.duckdns.org
nslookup app.ithome-rancher.duckdns.org
nslookup api.ithome-rancher.duckdns.org
# 使用 dig 測試
dig +short rancher.ithome-rancher.duckdns.org
dig +short app.ithome-rancher.duckdns.org
# 如果還沒設定 IP,這些指令不會回傳任何結果
# 需要先在 DuckDNS 網頁設定 IP 或使用 API 更新
完成註冊後,我們來測試 DuckDNS 是否正常運作:
# 首先取得目前的公網 IP
curl ifconfig.me
# 手動更新一次 DuckDNS(確認 API 正常運作)
curl -s "https://www.duckdns.org/update?domains=ithome-rancher&token=${DUCKDNS_TOKEN}&ip="
# 預期回應應該是 "OK"
如果看到 "OK" 回應,表示 DuckDNS API 運作正常!
今天我們成功為數位牧場申請了真實的門牌地址!透過 DuckDNS 免費服務,我們取得了 ithome-rancher.duckdns.org
域名,並完成了基本的設定與測試。
重點回顧:
ithome-rancher.duckdns.org
域名明天我們將建立 DuckDNS 自動更新機制,並準備 SSL 憑證的整合工作。
💡 牧場主小提示:DuckDNS 的萬用字元功能很實用!
*.ithome-rancher.duckdns.org
都會解析到同一個 IP,方便我們建立多個子域名服務!記得不要像我一樣亂改本機的 DNS 設定 XD